package mysql8学习.初级.第12章_MySQL数据类型精讲;

/**
 *浮点类型
 * - FLOAT 表示单精度浮点数；     4字节
 * - DOUBLE 表示双精度浮点数；    8字节
 * - REAL默认就是 DOUBLE。
 *      如果你把 SQL 模式设定为启用 “`REAL_AS_FLOAT`”，
 *      那 么，MySQL 就认为 REAL 是 FLOAT。如果要启用“REAL_AS_FLOAT”，
 *      可以通过以下 SQL 语句实现：  SET sql_mode = “REAL_AS_FLOAT”;
 *
 *  MySQL存储浮点数的格式为: 符号(S)、 尾数(M) 和阶码(E)。
 *  因此，无论有没有符号，MySQL 的浮点数都会存储表示符号的部分。
 *  因此，所谓的无符号数取值范围，其实就是有符号数取值范围大于等于零的部分。
 *
 *  FLOAT(M,D)  这种方式  mysql特有
 *      M称为精度，D称为标度。(M,D)中 M=整数位+小数位，D=小数位。
 *      D<=M<=255，0<=D<=30。
 *      如果  小数位存在大于D 会自动四舍五入  但是正数多了 就直接报错
 *
 *  在编程中，如果用到浮点数,要特别注意误差问题，
 *  因为浮点数是不准确的，所以我们要避免使用“=”来判断两个数是否相等。
 *  同时,在一些对精确度要求较高的项目中，千万不要使用浮点数,
 *  不然会导致结果错误，甚至是造成不可挽回的损失。
 *  那么，MySQL 有没有精准的数据类型呢?
 *      当然有,这就是定点数类型: DECIMAL
 *
 * 从MySQL 8.0.17开始，
 *      FLOAT(M,D) 和DOUBLE(M,D)用法在官方文档中已经明确不推荐使用，
 *          将来可能被移除。
 *      另外，关于浮点型FLOAT和DOUBLE的UNSIGNED也不推荐使用了，
 *          将来也可能被移除。
 */
public class D1_浮点类型 {
}


